Chuyển tới nội dung chính

std::array::operator[]

#include <array>

      reference operator[] (size_type n);
const_reference operator[] (size_type n) const;

Truy cập trực tiếp tới các phần tử của mảng.

Tham số

n

  • Vị trí của phần tử cần truy cập (kiểu size_t). Vị trí này phải nằm trong phạm vi của mảng.

Giá trị trả về

  • Trả về một tham chiếu (reference) tới phần tử tại vị trí n.
    • Phiên bản hằng (const): Trả về tham chiếu hằng (const T&).
    • Phiên bản không hằng (non-const): Trả về tham chiếu không hằng (T&).

Đặc điểm

  1. Toán tử [] cho phép truy cập trực tiếp các phần tử của std::array thông qua chỉ số.
  2. Không giống như phương thức .at(), toán tử [] không kiểm tra giới hạn chỉ số. Việc truy cập ngoài phạm vi sẽ dẫn đến hành vi không xác định (undefined behavior).
  3. Khi sử dụng trên một đối tượng std::array hằng (const), phiên bản const của toán tử được gọi và trả về một tham chiếu hằng tới phần tử.
  4. Vì không kiểm tra giới hạn, toán tử [] nhanh hơn so với .at().
  5. Chỉ sử dụng operator[] nếu chắc chắn chỉ số nằm trong phạm vi hợp lệ.
  6. Sử dụng .at() trong trường hợp cần bảo vệ mã khỏi lỗi truy cập ngoài phạm vi.

Ví dụ

Truy cập và gán giá trị

#include <iostream>
#include <array>

int main() {
std::array<int, 5> arr = {1, 2, 3, 4, 5};

// Truy cập phần tử
std::cout << "Phần tử đầu tiên: " << arr[0] << "\n";

// Gán giá trị cho phần tử
arr[1] = 10;
std::cout << "Phần tử thứ hai sau khi gán: " << arr[1] << "\n";

return 0;
}

Sử dụng trên đối tượng hằng

#include <iostream>
#include <array>

int main() {
const std::array<int, 3> arr = {1, 2, 3};

// Truy cập phần tử (chỉ đọc)
std::cout << "Phần tử thứ ba: " << arr[2] << "\n";

// arr[2] = 10; // Lỗi: Không thể gán giá trị cho đối tượng hằng

return 0;
}

Các hàm liên quan

atTruy xuất phần tử tại vị trí chỉ định
frontTruy xuất phần tử tại vị trí đầu tiên
backTruy xuất phần tử tại vị trí cuối cùng